﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AvaProvi
{
    [Serializable]
    public class clsRevestimiento_CRN:clsEstado,IControlEstados
    {
        #region Propiedades de clase
        public string EdoPiso { get; set; }
        public string EdoMuros { get; set; }
        public string EdoPlafones { get; set; }
        public string FalsoPlafon { get; set; }
        public string EdoLambrines { get; set; }
        public string Lambrines { get; set; }
        public string Zoclos { get; set; }
        public string Escaleras { get; set; }
        public string Pintura { get; set; }
        public string RecubrEsp { get; set; }
        public string Carpinteria { get; set; }
        public string EdoCarpinteria { get; set; }
        public string PisosSC1 { get; set; }
        public string PisosSC2 { get; set; }
        public string PisosSC3 { get; set; }
        public string PisosC1 { get; set; }
        public string PisosC2 { get; set; }
        public string PisosC3 { get; set; }
        public string PisosR1 { get; set; }
        public string PisosR2 { get; set; }
        public string PisosR3 { get; set; }
        public string PisosB1 { get; set; }
        public string PisosB2 { get; set; }
        public string PisosB3 { get; set; }
        public string PisosF1 { get; set; }
        public string PisosF2 { get; set; }
        public string PisosF3 { get; set; }
        public string PisosP1 { get; set; }
        public string PisosP2 { get; set; }
        public string PisosP3 { get; set; }
        public string PisosE1 { get; set; }
        public string PisosE2 { get; set; }
        public string PisosE3 { get; set; }
        public string MurosSC1 { get; set; }
        public string MurosSC2 { get; set; }
        public string MurosSC3 { get; set; }
        public string MurosC1 { get; set; }
        public string MurosC2 { get; set; }
        public string MurosC3 { get; set; }
        public string MurosR1 { get; set; }
        public string MurosR2 { get; set; }
        public string MurosR3 { get; set; }
        public string MurosB1 { get; set; }
        public string MurosB2 { get; set; }
        public string MurosB3 { get; set; }
        public string MurosF1 { get; set; }
        public string MurosF2 { get; set; }
        public string MurosF3 { get; set; }
        public string MurosP1 { get; set; }
        public string MurosP2 { get; set; }
        public string MurosP3 { get; set; }
        public string MurosE1 { get; set; }
        public string MurosE2 { get; set; }
        public string MurosE3 { get; set; }
        public string PlafonesSC1 { get; set; }
        public string PlafonesSC2 { get; set; }
        public string PlafonesSC3 { get; set; }
        public string PlafonesC1 { get; set; }
        public string PlafonesC2 { get; set; }
        public string PlafonesC3 { get; set; }
        public string PlafonesR1 { get; set; }
        public string PlafonesR2 { get; set; }
        public string PlafonesR3 { get; set; }
        public string PlafonesB1 { get; set; }
        public string PlafonesB2 { get; set; }
        public string PlafonesB3 { get; set; }
        public string PlafonesF1 { get; set; }
        public string PlafonesF2 { get; set; }
        public string PlafonesF3 { get; set; }
        public string PlafonesP1 { get; set; }
        public string PlafonesP2 { get; set; }
        public string PlafonesP3 { get; set; }
        public string PlafonesE1 { get; set; }
        public string PlafonesE2 { get; set; }
        public string PlafonesE3 { get; set; }
        public clsInmueble_CRN Inmueble { get; set; }
        #endregion

        #region Constructor
        public clsRevestimiento_CRN(clsInmueble_CRN objInmueble)
            : base()
        {
            this.EdoPiso = string.Empty;
            this.EdoMuros = string.Empty;
            this.EdoPlafones = string.Empty;
            this.FalsoPlafon = string.Empty;
            this.EdoLambrines = string.Empty;
            this.Lambrines = string.Empty;
            this.Zoclos = string.Empty;
            this.Escaleras = string.Empty;
            this.Pintura = string.Empty;
            this.RecubrEsp = string.Empty;
            this.Carpinteria = string.Empty;
            this.EdoCarpinteria = string.Empty;
            this.PisosSC1 = string.Empty;
            this.PisosSC2 = string.Empty;
            this.PisosSC3 = string.Empty;
            this.PisosC1 = string.Empty;
            this.PisosC2 = string.Empty;
            this.PisosC3 = string.Empty;
            this.PisosR1 = string.Empty;
            this.PisosR2 = string.Empty;
            this.PisosR3 = string.Empty;
            this.PisosB1 = string.Empty;
            this.PisosB2 = string.Empty;
            this.PisosB3 = string.Empty;
            this.PisosF1 = string.Empty;
            this.PisosF2 = string.Empty;
            this.PisosF3 = string.Empty;
            this.PisosP1 = string.Empty;
            this.PisosP2 = string.Empty;
            this.PisosP3 = string.Empty;
            this.PisosE1 = string.Empty;
            this.PisosE2 = string.Empty;
            this.PisosE3 = string.Empty;
            this.MurosSC1 = string.Empty;
            this.MurosSC2 = string.Empty;
            this.MurosSC3 = string.Empty;
            this.MurosC1 = string.Empty;
            this.MurosC2 = string.Empty;
            this.MurosC3 = string.Empty;
            this.MurosR1 = string.Empty;
            this.MurosR2 = string.Empty;
            this.MurosR3 = string.Empty;
            this.MurosB1 = string.Empty;
            this.MurosB2 = string.Empty;
            this.MurosB3 = string.Empty;
            this.MurosF1 = string.Empty;
            this.MurosF2 = string.Empty;
            this.MurosF3 = string.Empty;
            this.MurosP1 = string.Empty;
            this.MurosP2 = string.Empty;
            this.MurosP3 = string.Empty;
            this.MurosE1 = string.Empty;
            this.MurosE2 = string.Empty;
            this.MurosE3 = string.Empty;
            this.PlafonesSC1 = string.Empty;
            this.PlafonesSC2 = string.Empty;
            this.PlafonesSC3 = string.Empty;
            this.PlafonesC1 = string.Empty;
            this.PlafonesC2 = string.Empty;
            this.PlafonesC3 = string.Empty;
            this.PlafonesR1 = string.Empty;
            this.PlafonesR2 = string.Empty;
            this.PlafonesR3 = string.Empty;
            this.PlafonesB1 = string.Empty;
            this.PlafonesB2 = string.Empty;
            this.PlafonesB3 = string.Empty;
            this.PlafonesF1 = string.Empty;
            this.PlafonesF2 = string.Empty;
            this.PlafonesF3 = string.Empty;
            this.PlafonesP1 = string.Empty;
            this.PlafonesP2 = string.Empty;
            this.PlafonesP3 = string.Empty;
            this.PlafonesE1 = string.Empty;
            this.PlafonesE2 = string.Empty;
            this.PlafonesE3 = string.Empty;
            this.Inmueble = objInmueble;
        }
        #endregion

        #region Métodos

        public bool Guardar()
        {
            if (this.DatosValidos())
            {
                if (this.EsNuevo)
                    return CreaRevestimiento();
                else
                {
                    if (this.EsModificado)
                        return ModificaRevestimiento();
                    else
                        return EliminaRevestimiento();
                }
            }
            return false;
        }

        private bool EliminaRevestimiento()
        {
            clsRevestimiento_CD objRevestimiento_CD = new clsRevestimiento_CD();
            return objRevestimiento_CD.EliminaRevestimiento(this);
        }

        private bool ModificaRevestimiento()
        {
            clsRevestimiento_CD objRevestimiento_CD = new clsRevestimiento_CD();
            return objRevestimiento_CD.ModificaRevestimiento(this);
        }

        private bool CreaRevestimiento()
        {
            clsRevestimiento_CD objRevestimiento_CD = new clsRevestimiento_CD();
            if (objRevestimiento_CD.NuevoRevestimiento(this))
            {
                this.EsModificado = true;
                return true;
            }
            return false;
        }

        public bool DatosValidos()
        {
            return true;
        }

        public static clsRevestimiento_CRN RecuperaRevestimiento(clsInmueble_CRN objInmueble)
        {
            clsRevestimiento_CRN objRevestimiento = new clsRevestimiento_CRN(objInmueble);
            clsRevestimiento_CD objRevestimiento_CD = new clsRevestimiento_CD();
            dsInmoviliario.RevestimientosRow RevestimientoRecuperado = objRevestimiento_CD.RecuperaRevestimiento(objInmueble.Avaluo.IdAvaluo);
            if (RevestimientoRecuperado != null)
            {
                objRevestimiento.EdoPiso = RevestimientoRecuperado.EdoPiso;
                objRevestimiento.EdoMuros = RevestimientoRecuperado.EdoMuros;
                objRevestimiento.EdoPlafones = RevestimientoRecuperado.EdoPlafones;
                objRevestimiento.FalsoPlafon = RevestimientoRecuperado.FalsoPlafon;
                objRevestimiento.EdoLambrines = RevestimientoRecuperado.EdoLambrines;
                objRevestimiento.Lambrines = RevestimientoRecuperado.Lambrines;
                objRevestimiento.Zoclos = RevestimientoRecuperado.Zoclos;
                objRevestimiento.Escaleras = RevestimientoRecuperado.Escaleras;
                objRevestimiento.Pintura = RevestimientoRecuperado.Pintura;
                objRevestimiento.RecubrEsp = RevestimientoRecuperado.RecubrEsp;
                objRevestimiento.Carpinteria = RevestimientoRecuperado.Carpinteria;
                objRevestimiento.EdoCarpinteria = RevestimientoRecuperado.EdoCarpinteria;
                objRevestimiento.PisosSC1 = RevestimientoRecuperado.PisosSC1;
                objRevestimiento.PisosSC2 = RevestimientoRecuperado.PisosSC2;
                objRevestimiento.PisosSC3 = RevestimientoRecuperado.PisosSC3;
                objRevestimiento.PisosC1 = RevestimientoRecuperado.PisosC1;
                objRevestimiento.PisosC2 = RevestimientoRecuperado.PisosC2;
                objRevestimiento.PisosC3 = RevestimientoRecuperado.PisosC3;
                objRevestimiento.PisosR1 = RevestimientoRecuperado.PisosR1;
                objRevestimiento.PisosR2 = RevestimientoRecuperado.PisosR2;
                objRevestimiento.PisosR3 = RevestimientoRecuperado.PisosR3;
                objRevestimiento.PisosB1 = RevestimientoRecuperado.PisosB1;
                objRevestimiento.PisosB2 = RevestimientoRecuperado.PisosB2;
                objRevestimiento.PisosB3 = RevestimientoRecuperado.PisosB3;
                objRevestimiento.PisosF1 = RevestimientoRecuperado.PisosF1;
                objRevestimiento.PisosF2 = RevestimientoRecuperado.PisosF2;
                objRevestimiento.PisosF3 = RevestimientoRecuperado.PisosF3;
                objRevestimiento.PisosP1 = RevestimientoRecuperado.PisosP1;
                objRevestimiento.PisosP2 = RevestimientoRecuperado.PisosP2;
                objRevestimiento.PisosP3 = RevestimientoRecuperado.PisosP3;
                objRevestimiento.PisosE1 = RevestimientoRecuperado.PisosE1;
                objRevestimiento.PisosE2 = RevestimientoRecuperado.PisosE2;
                objRevestimiento.PisosE3 = RevestimientoRecuperado.PisosE3;
                objRevestimiento.MurosSC1 = RevestimientoRecuperado.MurosSC1;
                objRevestimiento.MurosSC2 = RevestimientoRecuperado.MurosSC2;
                objRevestimiento.MurosSC3 = RevestimientoRecuperado.MurosSC3;
                objRevestimiento.MurosC1 = RevestimientoRecuperado.MurosC1;
                objRevestimiento.MurosC2 = RevestimientoRecuperado.MurosC2;
                objRevestimiento.MurosC3 = RevestimientoRecuperado.MurosC3;
                objRevestimiento.MurosR1 = RevestimientoRecuperado.MurosR1;
                objRevestimiento.MurosR2 = RevestimientoRecuperado.MurosR2;
                objRevestimiento.MurosR3 = RevestimientoRecuperado.MurosR3;
                objRevestimiento.MurosB1 = RevestimientoRecuperado.MurosB1;
                objRevestimiento.MurosB2 = RevestimientoRecuperado.MurosB2;
                objRevestimiento.MurosB3 = RevestimientoRecuperado.MurosB3;
                objRevestimiento.MurosF1 = RevestimientoRecuperado.MurosF1;
                objRevestimiento.MurosF2 = RevestimientoRecuperado.MurosF2;
                objRevestimiento.MurosF3 = RevestimientoRecuperado.MurosF3;
                objRevestimiento.MurosP1 = RevestimientoRecuperado.MurosP1;
                objRevestimiento.MurosP2 = RevestimientoRecuperado.MurosP2;
                objRevestimiento.MurosP3 = RevestimientoRecuperado.MurosP3;
                objRevestimiento.MurosE1 = RevestimientoRecuperado.MurosE1;
                objRevestimiento.MurosE2 = RevestimientoRecuperado.MurosE2;
                objRevestimiento.MurosE3 = RevestimientoRecuperado.MurosE3;
                objRevestimiento.PlafonesSC1 = RevestimientoRecuperado.PlafonesSC1;
                objRevestimiento.PlafonesSC2 = RevestimientoRecuperado.PlafonesSC2;
                objRevestimiento.PlafonesSC3 = RevestimientoRecuperado.PlafonesSC3;
                objRevestimiento.PlafonesC1 = RevestimientoRecuperado.PlafonesC1;
                objRevestimiento.PlafonesC2 = RevestimientoRecuperado.PlafonesC2;
                objRevestimiento.PlafonesC3 = RevestimientoRecuperado.PlafonesC3;
                objRevestimiento.PlafonesR1 = RevestimientoRecuperado.PlafonesR1;
                objRevestimiento.PlafonesR2 = RevestimientoRecuperado.PlafonesR2;
                objRevestimiento.PlafonesR3 = RevestimientoRecuperado.PlafonesR3;
                objRevestimiento.PlafonesB1 = RevestimientoRecuperado.PlafonesB1;
                objRevestimiento.PlafonesB2 = RevestimientoRecuperado.PlafonesB2;
                objRevestimiento.PlafonesB3 = RevestimientoRecuperado.PlafonesB3;
                objRevestimiento.PlafonesF1 = RevestimientoRecuperado.PlafonesF1;
                objRevestimiento.PlafonesF2 = RevestimientoRecuperado.PlafonesF2;
                objRevestimiento.PlafonesF3 = RevestimientoRecuperado.PlafonesF3;
                objRevestimiento.PlafonesP1 = RevestimientoRecuperado.PlafonesP1;
                objRevestimiento.PlafonesP2 = RevestimientoRecuperado.PlafonesP2;
                objRevestimiento.PlafonesP3 = RevestimientoRecuperado.PlafonesP3;
                objRevestimiento.PlafonesE1 = RevestimientoRecuperado.PlafonesE1;
                objRevestimiento.PlafonesE2 = RevestimientoRecuperado.PlafonesE2;
                objRevestimiento.PlafonesE3 = RevestimientoRecuperado.PlafonesE3;
                objRevestimiento.EsModificado = true;
            }
            return objRevestimiento;
        }
        #endregion
    }
}
